/*
 *  Copyright (C) 2010 glauco
 * 
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 * 
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 * 
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package org.balisunrise.application;

/**
 * Interface que disponibiliza os dados de um módulo do Aplicativo.
 * Modulos são aprensentados na Toolbar principal do sistema.
 * Os módulos tambem possuem menus, em todos os menus, é necessário definir
 * qual o módulo que ele pertense.
 * Cada módulo deve possuir um nome unico, o qual será utilizado nos MenuItens
 * para saber de qual módulo ele pertense.
 *
 * @author glauco
 */
public interface Module extends MenuFolder{

    /**
     * Retorna a descrição do módulo.
     * Esta descrição será usada nos menus.
     * @return Descrição do módulo
     */
    public String getDescription();

    /**
     * Retorna a dica do que faz o módulo.
     * @return Dica do que faz o módulo
     */
    public String getToolTipText();

    /**
     * Caminho do icone menor.
     * O tamanho deve ser 16x16.
     * @return Caminho do icone.
     */
    public String getSmallIcon();

    /**
     * Caminho do icone médio.
     * O tamanho deve ser 32x32 ou 24x24
     * @return
     */
    public String getMediumIcon();

    /**
     * Caminho do icone maior.
     * O tamanho deve ser 48x48 ou 64x64
     * @return
     */
    public String getLargeIcon();
}
